﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Bussiness;
using Data;
using System.Text.RegularExpressions;

namespace hostal
{
    public partial class BuscarCuenta : Form
    {
        private DataTable dataTableTemporal = new DataTable();
        private string tipoUsuario,usuarioActual;
        private bool busque = false;

        public BuscarCuenta(string tipoUsuario,string usuario)
        {
            InitializeComponent();
            usuarioActual=usuario;
            this.Reset();
            this.tipoUsuario = tipoUsuario;
        }

        private void Reset()
        {
            DGDatosPersonal.Columns.Clear();
            CuentasDataAccess buscarUsuario = new CuentasDataAccess();
            dataTableTemporal = buscarUsuario.buscarCuentasActivas(usuarioActual);
            DGDatosPersonal.DataSource = dataTableTemporal;
        }

        private void TBBuscar_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (Validador.validarLetraConEspacio(e.KeyChar))
                e.Handled = false;
            else
                e.Handled = true;
        }

        private void BTBuscar_Click(object sender, EventArgs e)
        {
            DGDatosPersonal.Columns.Clear();
            /*if (TBBuscar.Text != "")
            {*/
                TBBuscar.Text = Regex.Replace(TBBuscar.Text, @"\s+", " ");
                PersonalDataAccess buscarDataAccess = new PersonalDataAccess();
                dataTableTemporal = buscarDataAccess.buscarDatosLimitado(TBBuscar.Text.Trim(),usuarioActual);
                DGDatosPersonal.DataSource = dataTableTemporal;
            //}
            busque = true;
        }

        private void BTRegistrarNuevaCuenta_Click(object sender, EventArgs e)
        {

        }

        private void BTVerCuenta_Click(object sender, EventArgs e)
        {
            CuentasDataAccess cuentas = new CuentasDataAccess();
            PersonalDataAccess verInformacion = new PersonalDataAccess();
            try
            {
                int fila = DGDatosPersonal.CurrentRow.Index;
                if (fila != -1)
                {
                    string usuario = DGDatosPersonal.Rows[fila].Cells["usuario"].Value.ToString();
                    VerCuenta verDetallePersonal = new VerCuenta(verInformacion.buscarTodosDatos(DGDatosPersonal.Rows[fila].Cells[0].Value.ToString()), usuario,DGDatosPersonal.Rows[fila].Cells["tipoCuenta"].Value.ToString());
                    verDetallePersonal.ShowDialog();
                }
            }
            catch (SystemException exeption)
            {
            }
        }

        private void BTEditarCuenta_Click(object sender, EventArgs e)
        {
            PersonalDataAccess verInformacion = new PersonalDataAccess();
            try
            {
                int fila = DGDatosPersonal.CurrentRow.Index;
                string usuario="usu";
                if (busque)
                {
                    EditarCuenta m = new EditarCuenta(verInformacion.buscarTodosDatos(DGDatosPersonal.Rows[fila].Cells["numeroDocumento"].Value.ToString()), DGDatosPersonal.Rows[fila].Cells["usuario"].Value.ToString(), DGDatosPersonal.Rows[fila].Cells["activo"].Value.ToString(), DGDatosPersonal.Rows[fila].Cells["tipoCuenta"].Value.ToString(), tipoUsuario);
                    m.ShowDialog();
                    actualizarUsuario(m,usuario);
                    /*if (m.ShowDialog() == DialogResult.OK)
                    {
                        usuario = m.usuario;
                        DialogResult = DialogResult.OK;
                    }*/
                    this.BTBuscar_Click(sender, e);
                }
                else
                {
                    EditarCuenta m = new EditarCuenta(verInformacion.buscarTodosDatos(DGDatosPersonal.Rows[fila].Cells["numeroDocumento"].Value.ToString()), DGDatosPersonal.Rows[fila].Cells["usuario"].Value.ToString(), "si", DGDatosPersonal.Rows[fila].Cells["tipoCuenta"].Value.ToString(), tipoUsuario);
                    m.ShowDialog();
                    actualizarUsuario(m,usuario);
                    /*if (m.ShowDialog() == DialogResult.OK)
                    {
                        DialogResult = DialogResult.OK;
                        usuario = m.usuario;
                    }*/
                    this.Reset();
                }
            }
            catch (SystemException exeption){}
        }

        private void actualizarUsuario(EditarCuenta m,string usuario)
        {
            /*if (m.ShowDialog() == DialogResult.OK)
            {*/
                usuario = m.usuario;
                this.DialogResult = DialogResult.OK;
            //}
        }

        public string usuario { get; set; }
    }
}
